package ar.edu.caece.compiler.grammar.nonterminals;

import ar.edu.caece.compiler.grammar.NonTerminalSymbol;
import ar.edu.caece.compiler.grammar.terminals.ComenzarToken;
import ar.edu.caece.compiler.grammar.terminals.FinFuncToken;
import ar.edu.caece.compiler.grammar.terminals.PuntoComaToken;

public class ALTERF2 extends NonTerminalSymbol implements ALTERF{

	private LISTADECLARACIONES listadeclaraciones;
	private ComenzarToken comenzarToken;
	private LISTAPROP listaprop;
	private FinFuncToken finFuncToken;
	private EXPR expr;
	private PuntoComaToken puntoComaToken;
	
	public ALTERF2(LISTADECLARACIONES listadeclaraciones,
			ComenzarToken comenzarToken, LISTAPROP listaprop,
			FinFuncToken finFuncToken, EXPR expr, PuntoComaToken puntoComaToken) {
		super();
		this.listadeclaraciones = listadeclaraciones;
		this.comenzarToken = comenzarToken;
		this.listaprop = listaprop;
		this.finFuncToken = finFuncToken;
		this.expr = expr;
		this.puntoComaToken = puntoComaToken;
	}

	@Override
	public String getRepresentation() {
		// TODO Auto-generated method stub
		return "{"+this.getClass().getSimpleName()+" -> "+listadeclaraciones.getRepresentation()+" "+comenzarToken.getRepresentation()+" "+listaprop.getRepresentation()+" "+finFuncToken.getRepresentation()+" "+expr.getRepresentation()+" "+puntoComaToken.getRepresentation()+"}";
	}

	public LISTADECLARACIONES getListadeclaraciones() {
		return listadeclaraciones;
	}

	public ComenzarToken getComenzarToken() {
		return comenzarToken;
	}

	public LISTAPROP getListaprop() {
		return listaprop;
	}

	public FinFuncToken getFinFuncToken() {
		return finFuncToken;
	}

	public EXPR getExpr() {
		return expr;
	}

	public PuntoComaToken getPuntoComaToken() {
		return puntoComaToken;
	}

}
